HTLC を盗むシンプルな攻撃
A -> M -> B とルーティングする
M が攻撃者
B が被害者
通常のルーティングでは、preimage を手に入れたら、commitment tx を更新する
preimage を手に入れたが、commitment tx の更新に応じず、HTLC を timeout させることで、M は A から HTLC を受け取りつつも、Bに HTLC を支払わない、という攻撃
通常であれば、B が on-chain で HTLC を実行するため、この攻撃は成り立たない
しかし B の tx が confirm するよりも先に HTLC が timeout すると、この攻撃が成り立つ
したがって、M は B の commitment tx + HTLC-success tx のペアが timeout まで confirm されないようにする必要がある
anchor output がないシンプルな commitment tx を考える
commitment tx に M が使える output がある場合、子 tx を追加し fee を下げることで、commitment tx が confirm されなくなる???
B は CPFP で fee をあげるしかない?
Core のポリシーで子 tx には上限がある?